package org.example.gradleauth.service;

import org.example.gradleauth.model.dto.JwtClaimDto;
import org.example.gradleauth.model.vo.TokenVo;

public interface TokenService {

    /**
     * 生成 AccessToken
     *
     * @param jwtClaimDto jwtClaimDto
     * @return TokenVo
     */
    TokenVo generateAccessToken(JwtClaimDto jwtClaimDto);

    /**
     * 生成 RefreshToken
     *
     * @param jwtClaimDto jwtClaimDto
     * @return TokenVo
     */
    TokenVo generateRefreshToken(JwtClaimDto jwtClaimDto);

    /**
     * 根据 RefreshToken
     * 生成 AccessToken
     *
     * @param refreshToken refreshToken
     * @return TokenVo
     */
    TokenVo refreshToken(String refreshToken);

}
